1. Field of the Invention
The present invention relates to computer telephony and, in particular, to a Voice over IP (VoIP) application.
2. Description of the Related Art
The use of the Internet for real-time voice applications is increasingly widespread. A key to real-time speech and voice transmission on the Internet is the Voice over IP (VoIP) gateway. The Voice over IP gateway bridges the public switched telephone network (PSTN) or integrated services digital network (ISDN) with the packet-switched data network (TCP/IP Local Area Network). Such a VoIP gateway is configured to provide IP call control and IP data transport, which includes compression/decompression of voice channels using G.723.1 vocoding. In addition, PSTN or ISDN call control and compression and packetization are provided, typically using G.711 vocoding.
An exemplary gateway system 1000 is illustrated in FIG. 1. The gateway system 1000 includes an IP Network Interface 1002, a host computer 1006, a voice payload data processing unit 1008, and a PBX interface 1004. The IP Network Interface 1002 is coupled, for example, to a 10 MBit Ethernet. The PBX Interface 1004 is coupled, for example, to a plurality of E1/TI/PRI lines. The host computer 1006 includes a conversion unit 1006a and a fax processing unit 1006b, and provides overall system control.
Voice payload processing is accomplished at the Voice Payload Data Processing Unit 1008. The voice payload data processing unit 1008 may include a plurality of digital signal processors (DSP). Typically, one DSP handles the call processing (e.g., real-time vocoding, silence suppression, echo cancellation, DTMF filtering, and .mu.-law/a-law conversion) of three or four channels. The IP Network Interface 1002 performs IP Network packetizing for received voice payload data packets from the voice payload data packet unit 1008. This includes, for example, encapsulating the data using RTP, UTP, IP and Ethernet headers. The gateway system 1000 may support both voice and fax operations.
A key to successful VoIP gateway functionality is the minimization of encoding/decoding delays at the DSPs. Delay causes two problems; echo and talker overlap. Delay may result from the need to collect a frame of voice samples to be processed by the voice coder, the process of encoding and collecting the encoded samples into a packet for transmission over the packet network, or network delays which are caused by the physical medium and protocol used to transmit the voice data and by the buffers used to remove packet jitter on the received side. As discussed above, in a typical VoIP gateway, a three or four telephony channels are compressed/decompressed by a single DSP which then provides the data to the IP Network Interface. FIG. 2 illustrates a single DSP. For sake of clarity, the host computer 1006 and additional DSPs are omitted. Gateway 100 includes a digital signal processor (DSP) 102, a network interface 104, as well as a telephone interface 106. As shown, a G.723.1 encoding/decoding module 108 is provided for converting the received pulse code modulation (PCM) signals into signals suitable for IP transmission. The telephony interface 106 interfaces with the telephone network. As shown, three 64 kilobit per second telephony channels 110, 112 and 114 are fed into the DSP 102. The channels 110, 112 and 114 are not synchronized. Accordingly, multiplexing delays at the DSP 102 may be introduced which can have a detrimental effect upon system performance. The multiplexing delay can be anywhere between zero milliseconds and thirty milliseconds, minus processing time for encoding/decoding.
The multiplexing delays are illustrated in greater detail in FIG. 2. In particular, the telephony interface 106 separates the received ISDN data stream into three (for example) B-channels, designated channel A, channel B, and channel C, respectively. (Typically, the telephony data is provided as a constant stream, which is buffered, processed, buffered, and sent out). As shown, voice channels A, B and C are received approximately simultaneously according to a single clock. Thus, one 30-millisecond frame may be ready for encoding for each incoming telephony channel at the same time, designated T.sub.0. Since the channels are being received simultaneously, a packet for each channel A, B, and C is also available (simultaneously) at times T.sub.1 -T.sub.4. As can be seen, the G.723.1 encoding of channel A, represented by reference A.sub.1, is completed at time T.sub.1 +.DELTA.T. The encoding of channel B, represented by reference B.sub.1, is not completed until T.sub.1 +2.DELTA.T; and the encoding of channel C, represented by reference C.sub.1, is not completed until T.sub.1 +3.DELTA.T. A similar result is obtained for the encoding of subsequent voice packets. As can be seen, there may be a large multiplexing delay on channel C. As shown, a delay of 3.DELTA.T is required before channel C is encoded.
Accordingly, there is a need for an improved voice-over IP gateway which minimizes system delays. In particular, there is a need for a VoIP gateway which minimizes multiplexing delays at the DSP.